<?xml version="1.0" standalone="yes"?>
<mi:PackageInstaller xmlns:mi="http://www.composite.net/ns/management/packageinstaller/1.0">
	<mi:PackageRequirements minimumCompositeVersion="3.1.4400.42718" maximumCompositeVersion="9.9999.9999.9999" />
	<mi:PackageInformation name="Composite.Tools.LegacyUrlHandler" groupName="Composite.Tools" version="1.1.0" readMoreUrl="http://docs.composite.net/Composite.Tools.LegacyUrlHandler" author="Composite A/S" website="http://composite.net" id="f0de8a66-23b8-41de-8cdc-9dc6d4395022" canBeUninstalled="true" systemLocking="hard" flushOnCompletion="false" reloadConsoleOnCompletion="true">
		<Description>Keeps track of changes to URLs on a website and maps no longer existing URLs to their new equivalents.</Description>
		<TechnicalDetails>Keeps track of changes to URLs on a website and maps no longer existing URLs to their new equivalents.</TechnicalDetails>
	</mi:PackageInformation>
	<mi:PackageFragmentInstallerBinaries />
	<mi:PackageFragmentInstallers>
		<mi:Add installerType="Composite.Core.PackageSystem.PackageFragmentInstallers.FilePackageFragmentInstaller, Composite" uninstallerType="Composite.Core.PackageSystem.PackageFragmentInstallers.FilePackageFragmentUninstaller, Composite">
			<Files>
				<File sourceFilename="~\RemoveRedundantPaths.aspx" targetFilename="~\RemoveRedundantPaths.aspx" allowOverwrite="false" />
				<File sourceFilename="~\StoreCurrentPaths.aspx" targetFilename="~\StoreCurrentPaths.aspx" allowOverwrite="false" />
				<File sourceFilename="~\Bin\Composite.Tools.LegacyUrlHandler.dll" targetFilename="~\Bin\Composite.Tools.LegacyUrlHandler.dll" allowOverwrite="false" />
				<File sourceFilename="~\App_Data\Composite.Tools.LegacyUrlHandler\Config.xml" targetFilename="~\App_Data\Composite.Tools.LegacyUrlHandler\Config.xml" allowOverwrite="false" />
				<File sourceFilename="~\App_Data\Composite\TreeDefinitions\Composite.Tools.LegacyUrlHandler.BrokenLink.xml" targetFilename="~\App_Data\Composite\TreeDefinitions\Composite.Tools.LegacyUrlHandler.BrokenLink.xml" allowOverwrite="false" />
				<File sourceFilename="~\FixBrokenLink.aspx" targetFilename="~\FixBrokenLink.aspx" allowOverwrite="false" />
				<File sourceFilename="~\App_Data\Composite\DynamicTypeForms\Composite\Tools\LegacyUrlHandler\BrokenLink.xml" targetFilename="~\App_Data\Composite\DynamicTypeForms\Composite\Tools\LegacyUrlHandler\BrokenLink.xml" allowOverwrite="false" />
			</Files>
			<Directories>
				<Directory sourceDirectory="~\Frontend\Composite\Tools\LegacyUrlHandler\" targetDirectory="~\Frontend\Composite\Tools\LegacyUrlHandler\" allowOverwrite="true" deleteTargetDirectory="false" />
			</Directories>
		</mi:Add>
		<mi:Add installerType="Composite.Core.PackageSystem.PackageFragmentInstallers.FileXslTransformationPackageFragmentInstaller, Composite" uninstallerType="Composite.Core.PackageSystem.PackageFragmentInstallers.FileXslTransformationPackageFragmentUninstaller, Composite" Ordering="10">
			<XslFiles>
				<XslFile pathXml="~\Web.config" installXsl="~\Config\Install.xsl"  uninstallXsl="~\Config\Uninstall.xsl"/>
			</XslFiles>
		</mi:Add>
		<mi:Add installerType="Composite.Core.PackageSystem.PackageFragmentInstallers.DynamicDataTypePackageFragmentInstaller, Composite" uninstallerType="Composite.Core.PackageSystem.PackageFragmentInstallers.DynamicDataTypePackageFragmentUninstaller, Composite">
			<Types>
				<Type providerName="GeneratedDataTypesElementProvider" dataTypeDescriptor="&lt;DataTypeDescriptor dataTypeId=&quot;023eb7bf-f890-4e1b-a3b5-912e15ebee3a&quot; name=&quot;BrokenLink&quot; namespace=&quot;Composite.Tools.LegacyUrlHandler&quot; title=&quot;Broken Links&quot; hasCustomPhysicalSortOrder=&quot;false&quot; isCodeGenerated=&quot;true&quot; cachable=&quot;true&quot; labelFieldName=&quot;BadURL&quot; typeManagerTypeName=&quot;Composite.Tools.LegacyUrlHandler.BrokenLink&quot;&gt;&#xD;&#xA;  &lt;DataAssociations /&gt;&#xD;&#xA;  &lt;DataScopes&gt;&#xD;&#xA;    &lt;DataScopeIdentifier name=&quot;public&quot; /&gt;&#xD;&#xA;  &lt;/DataScopes&gt;&#xD;&#xA;  &lt;KeyPropertyNames&gt;&#xD;&#xA;    &lt;KeyPropertyName name=&quot;Id&quot; /&gt;&#xD;&#xA;  &lt;/KeyPropertyNames&gt;&#xD;&#xA;  &lt;SuperInterfaces /&gt;&#xD;&#xA;  &lt;Fields&gt;&#xD;&#xA;    &lt;DataFieldDescriptor id=&quot;65827ae4-385f-454a-99df-ed82972c704a&quot; name=&quot;Id&quot; isNullable=&quot;false&quot; position=&quot;-1&quot; groupByPriority=&quot;0&quot; inherited=&quot;false&quot; instanceType=&quot;System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&quot; storeType=&quot;PhysicalStoreType='Guid'&quot; isReadOnly=&quot;false&quot;&gt;&#xD;&#xA;      &lt;FormRenderingProfile /&gt;&#xD;&#xA;      &lt;ValidationFunctionMarkups /&gt;&#xD;&#xA;    &lt;/DataFieldDescriptor&gt;&#xD;&#xA;    &lt;DataFieldDescriptor id=&quot;2f97d167-1f89-4af8-9b35-a6398f5e57ab&quot; name=&quot;BadURL&quot; isNullable=&quot;false&quot; position=&quot;0&quot; groupByPriority=&quot;0&quot; inherited=&quot;false&quot; instanceType=&quot;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&quot; storeType=&quot;PhysicalStoreType='String'Length='1024'&quot; isReadOnly=&quot;false&quot; defaultValue=&quot;ValueType='String'Value=''&quot;&gt;&#xD;&#xA;      &lt;FormRenderingProfile label=&quot;Bad URL&quot; helpText=&quot;&quot; widgetFunctionMarkup=&quot;&amp;lt;f:widgetfunction xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; name=&amp;quot;Composite.Widgets.String.TextBox&amp;quot; label=&amp;quot;&amp;quot; bindingsourcename=&amp;quot;&amp;quot;&amp;gt;&amp;lt;f:helpdefinition xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; helptext=&amp;quot;&amp;quot; /&amp;gt;&amp;lt;/f:widgetfunction&amp;gt;&quot; /&gt;&#xD;&#xA;      &lt;ValidationFunctionMarkups /&gt;&#xD;&#xA;    &lt;/DataFieldDescriptor&gt;&#xD;&#xA;    &lt;DataFieldDescriptor id=&quot;0516325c-686d-48a7-ba22-603ca839d3fe&quot; name=&quot;Referer&quot; isNullable=&quot;false&quot; position=&quot;1&quot; groupByPriority=&quot;0&quot; inherited=&quot;false&quot; instanceType=&quot;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&quot; storeType=&quot;PhysicalStoreType='String'Length='512'&quot; isReadOnly=&quot;false&quot; defaultValue=&quot;ValueType='String'Value=''&quot;&gt;&#xD;&#xA;      &lt;FormRenderingProfile label=&quot;Referer&quot; helpText=&quot;&quot; widgetFunctionMarkup=&quot;&amp;lt;f:widgetfunction xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; name=&amp;quot;Composite.Widgets.String.TextArea&amp;quot; label=&amp;quot;&amp;quot; bindingsourcename=&amp;quot;&amp;quot;&amp;gt;&amp;lt;f:helpdefinition xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; helptext=&amp;quot;&amp;quot; /&amp;gt;&amp;lt;/f:widgetfunction&amp;gt;&quot; /&gt;&#xD;&#xA;      &lt;ValidationFunctionMarkups /&gt;&#xD;&#xA;    &lt;/DataFieldDescriptor&gt;&#xD;&#xA;    &lt;DataFieldDescriptor id=&quot;6790a280-40d3-436f-b872-4f7180183faa&quot; name=&quot;UserAgent&quot; isNullable=&quot;false&quot; position=&quot;2&quot; groupByPriority=&quot;0&quot; inherited=&quot;false&quot; instanceType=&quot;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&quot; storeType=&quot;PhysicalStoreType='String'Length='1024'&quot; isReadOnly=&quot;false&quot; defaultValue=&quot;ValueType='String'Value=''&quot;&gt;&#xD;&#xA;      &lt;FormRenderingProfile label=&quot;User Agent&quot; helpText=&quot;&quot; widgetFunctionMarkup=&quot;&amp;lt;f:widgetfunction xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; name=&amp;quot;Composite.Widgets.String.TextArea&amp;quot; label=&amp;quot;&amp;quot; bindingsourcename=&amp;quot;&amp;quot;&amp;gt;&amp;lt;f:helpdefinition xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; helptext=&amp;quot;&amp;quot; /&amp;gt;&amp;lt;/f:widgetfunction&amp;gt;&quot; /&gt;&#xD;&#xA;      &lt;ValidationFunctionMarkups /&gt;&#xD;&#xA;    &lt;/DataFieldDescriptor&gt;&#xD;&#xA;    &lt;DataFieldDescriptor id=&quot;c7472077-9b96-47a6-86a7-9f26c0738983&quot; name=&quot;IP&quot; isNullable=&quot;false&quot; position=&quot;3&quot; groupByPriority=&quot;1&quot; inherited=&quot;false&quot; instanceType=&quot;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&quot; storeType=&quot;PhysicalStoreType='String'Length='64'&quot; isReadOnly=&quot;false&quot; defaultValue=&quot;ValueType='String'Value=''&quot;&gt;&#xD;&#xA;      &lt;FormRenderingProfile label=&quot;IP address of the requester&quot; helpText=&quot;&quot; widgetFunctionMarkup=&quot;&amp;lt;f:widgetfunction xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; name=&amp;quot;Composite.Widgets.String.TextBox&amp;quot; label=&amp;quot;&amp;quot; bindingsourcename=&amp;quot;&amp;quot;&amp;gt;&amp;lt;f:helpdefinition xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; helptext=&amp;quot;&amp;quot; /&amp;gt;&amp;lt;/f:widgetfunction&amp;gt;&quot; /&gt;&#xD;&#xA;      &lt;ValidationFunctionMarkups /&gt;&#xD;&#xA;    &lt;/DataFieldDescriptor&gt;&#xD;&#xA;    &lt;DataFieldDescriptor id=&quot;b4ba63f2-5065-40dd-9326-95d631a246b6&quot; name=&quot;Date&quot; isNullable=&quot;true&quot; position=&quot;4&quot; groupByPriority=&quot;0&quot; inherited=&quot;false&quot; instanceType=&quot;&amp;lt;t n=&amp;quot;System.Nullable`1, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;&amp;gt;&amp;#xD;&amp;#xA;  &amp;lt;t n=&amp;quot;System.DateTime, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot; /&amp;gt;&amp;#xD;&amp;#xA;&amp;lt;/t&amp;gt;&quot; storeType=&quot;PhysicalStoreType='DateTime'&quot; isReadOnly=&quot;false&quot; newInstanceDefaultFieldValue=&quot;&amp;lt;f:function xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; name=&amp;quot;Composite.Utils.Date.Now&amp;quot; /&amp;gt;&quot;&gt;&#xD;&#xA;      &lt;FormRenderingProfile label=&quot;Date&quot; helpText=&quot;&quot; widgetFunctionMarkup=&quot;&amp;lt;f:widgetfunction xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; name=&amp;quot;Composite.Widgets.Date.DateTimeSelector&amp;quot; label=&amp;quot;&amp;quot; bindingsourcename=&amp;quot;&amp;quot;&amp;gt;&amp;lt;f:helpdefinition xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; helptext=&amp;quot;&amp;quot; /&amp;gt;&amp;lt;/f:widgetfunction&amp;gt;&quot; /&gt;&#xD;&#xA;      &lt;ValidationFunctionMarkups /&gt;&#xD;&#xA;    &lt;/DataFieldDescriptor&gt;&#xD;&#xA;    &lt;DataFieldDescriptor id=&quot;95b5085b-eaa2-4e02-9b70-0a781ddb1b98&quot; name=&quot;IsNotified&quot; isNullable=&quot;false&quot; position=&quot;5&quot; groupByPriority=&quot;0&quot; inherited=&quot;false&quot; instanceType=&quot;System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&quot; storeType=&quot;PhysicalStoreType='Boolean'&quot; isReadOnly=&quot;false&quot; newInstanceDefaultFieldValue=&quot;&amp;lt;f:function xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; name=&amp;quot;Composite.Constant.Boolean&amp;quot;&amp;gt;&amp;lt;f:param name=&amp;quot;Constant&amp;quot; value=&amp;quot;False&amp;quot; /&amp;gt;&amp;lt;/f:function&amp;gt;&quot; defaultValue=&quot;ValueType='Boolean'Value='False'&quot;&gt;&#xD;&#xA;      &lt;FormRenderingProfile label=&quot;IsNotified&quot; helpText=&quot;&quot; widgetFunctionMarkup=&quot;&amp;lt;f:widgetfunction xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; name=&amp;quot;Composite.Widgets.Bool.CheckBox&amp;quot; label=&amp;quot;&amp;quot; bindingsourcename=&amp;quot;&amp;quot;&amp;gt;&amp;lt;f:helpdefinition xmlns:f=&amp;quot;http://www.composite.net/ns/function/1.0&amp;quot; helptext=&amp;quot;&amp;quot; /&amp;gt;&amp;lt;/f:widgetfunction&amp;gt;&quot; /&gt;&#xD;&#xA;      &lt;ValidationFunctionMarkups /&gt;&#xD;&#xA;    &lt;/DataFieldDescriptor&gt;&#xD;&#xA;  &lt;/Fields&gt;&#xD;&#xA;&lt;/DataTypeDescriptor&gt;" />
			</Types>
		</mi:Add>
		<mi:Add installerType="Composite.Core.PackageSystem.PackageFragmentInstallers.DataPackageFragmentInstaller, Composite" uninstallerType="Composite.Core.PackageSystem.PackageFragmentInstallers.DataPackageFragmentUninstaller, Composite">
			<Types>
				<Type type="Composite.Data.Types.IMethodBasedFunctionInfo,Composite">
					<Data dataScopeIdentifier="public" dataFilename="~\Datas\Composite.Data.Types.IMethodBasedFunctionInfos_public.xml" />
				</Type>
			</Types>
		</mi:Add>
	</mi:PackageFragmentInstallers>
</mi:PackageInstaller>